import java.util.Scanner;
import java.util.Arrays;
/*给你一个整数 n ，对于 0 <= i <= n 中的每个 i ，
计算其二进制表示中 1 的个数 ，返回一个长度为 n + 1 的数组 ans 作为答案。
示例 1：
输入：n = 2
输出：[0,1,1]*/
public class Main {
    public static int[] checknandseeknumber(int n){
        int[] nums=new int[n+1];
        for(int i=0;i<n+1;i++){
             nums[i]=check(i);
        }
        return nums;
    }
    public static int check(int n){
        int count=0;
        while(n>0){
            count+=n&1;
            n/=2;
        }
        return count;
    }
    public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      int n=sc.nextInt();
      int[] res=checknandseeknumber(n);
      System.out.println(Arrays.toString(res));
    }
}